草庐IT

c++ - 包装第 3 方 DLL

全部标签

c++ - 是否可以使用内存缓冲区(或 PE 资源)来支持只读 SQLite 数据库?

我想使用Windows的“自定义资源”功能将存储在SQLite数据库中的相当大的数据block嵌入到我的二进制文件中。(这是一个日志记录工具的白名单)SQLite确实支持inmemorydatabases,但看起来这可能仅限于创建全新的数据库;并且似乎不支持从内存缓冲区读取;但我并不肯定。数据库是否支持这样的东西?(由于其他原因我必须嵌入SQLite,所以将它用于白名单也很棒......) 最佳答案 sqlite文档在线备份部分http://www.sqlite.org/backup.html有一些代码可以做你想做的事(即将内存数据

无法使用 fopen 读取 UTF8 编码的文件(文件, "r,ccs=UTF-8")

在使用fopen打开文件时,我使用ccs=encoding(如MSDN中所述)将编码设置为UTF-8。当写入文件时它工作正常wchar_t*unicode_text=L"こんにちは";FILE*f=fopen("C:\\test.txt","w,ccs=UTF-8");fwprintf(f,L"%s\n",unicode_text);fclose(f);当我在文本编辑器中打开文件时,unicode会正常显示。但是当尝试从创建的文件中读取时,未检测到UTF-8编码:wchar_tbuffer[1000];FILE*f=fopen("C:\\test.txt","r,ccs=UTF-8")

.net - 带有 winscard.dll 的 .NET 应用程序中的 ERROR_INVALID_HANDLE

我正在创建一个.NETWindows服务来与智能卡读卡器通信。主要组件是一个名为winscard.dll的WindowsDLL,我在.NET代码中将其与DLLImport属性一起使用。在WindowsXP32位上一切正常,但是当我在Windows7x64上运行它时,我在调用SCardTransmit时收到0x6ERROR_INVALID_HANDLE结果。该应用程序(作为命令行应用程序的服务)可以连接到读卡器,但无法从卡中读取任何内容。有什么想法吗? 最佳答案 SCardEstablishContext有问题,它将返回0但也处理0。

c# - 启动 Windows 服务时无法找到程序集文件 'example.dll'

我开发了一个WCF服务,它使用net.tcp绑定(bind)和读取和写入文件到文件系统。当我启动Windows服务(在控制台中)时,即使sample.dll在文件夹中,我也会收到以下错误:无法找到程序集文件sample.dll此特定WCF服务托管在Windows764位上运行的Windows服务中,我有以下问题:我应该为我的应用程序使用哪个帐户:用户/网络服务/本地系统/本地服务为什么操作系统不能加载dll,即使它存在?预先感谢您的帮助! 最佳答案 对于dll,您应该在OnStart方法的开头添加以下代码行。System.Envir

windows - msi.h 在 dll 中给出编译错误

我刚开始使用DLL。尽管我在Linux上做过一些严肃的C++编程并且知道DLL是什么。我需要使用自定义操作编写Windows安装程序。为此,我在VisualStudio2010中创建了一个新的DLL项目。当我尝试在StdAfx.h文件中包含msi.h时,出现以下错误:1>------Buildstarted:Project:CustomAction,Configuration:DebugWin32------1>DllEntry.cpp1>c:\programfiles(x86)\microsoftsdks\windows\v7.0a\include\msi.h(86):errorC2

c++ - 在 dll 之间使用 STL 时遇到问题

我在一个dll中有一个vector(或字符串),通过它的引用或指针在另一个dll中修改它是否安全,例如将新成员推送到vector或更改字符串的值?不知何故,当我这样做时有时会发生崩溃,我不知道为什么。如果我只是在另一个dll中读取它,使用const指针或引用,它绝对安全吗?使用STLport怎么样?更安全吗? 最佳答案 如果你修改一个STL容器,删除或添加新元素到它,它通常涉及分配/取消分配内存。如果碰巧您使用驻留在一个DLL中的分配器分配了一些内存,然后在另一个DLL中释放内存-使用另一个分配器,驻留在另一个DLL中-那么您可能会

c - 如何在静态控件中画线?

我想在静态控件中画一条线:caseWM_CREATE:{hgraph=CreateWindow(WC_STATIC,NULL,WS_CHILD|WS_VISIBLE|SS_CENTER,20,20,660,80,hWnd,NULL,NULL,NULL);SendMessage(hgraph,WM_SETTEXT,NULL,(LPARAM)"MyStatic");break;}caseWM_PAINT:{hdc=GetDC(hgraph);hp=CreatePen(0,5,RGB(0,100,0));SelectObject(hdc,hp);MoveToEx(hdc,0,0,0);Lin

c++ - 导入 msado15.dll

我正在尝试导入一个dll,即msado15.dll。我可以用这个解决方案很好地做到这一点;#import\rename("EOF","AdoNSEOF")但我真的不能用这个分发任何东西。我已经尝试通过注册表并为它找到了一个libid,所以我正在尝试:#import"libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52"rename("EOF","AdoNSEOF")但是我得到了这些错误1>Timestream.cpp(5):warningC4010:single-linecommentcontainsline-continuationcharacter1

c - 为什么DDK可以成功编译一个无效的源文件?

首先,你可以通过DDKbuildutility成功编译如下main.c。#includeNTSTATUSDriverEntry(PDRIVER_OBJECT,PUNICODE_STRING){try{leave;}except(1){}return0;}但是,请注意:“leave”和“except”都不是有效的C语言关键字。我知道__leave和__except(即带有双前导下划线)都是微软特定的关键字来扩展C语言,但“leave”和“except”不是。我还确认“leave”和“except”不是由宏定义的。MSDN对此没有任何解释。谁能给我解释一下?提前致谢。

c - 我的应用程序中的 ANSI C : how can I include and then extract . exe 文件(将 .exe 打包成 .exe)?

我正在编写一个创建Windows服务的程序。所以我需要两个.exe文件——一个用于程序,创建服务,另一个用于服务本身。但是我想将这两个文件合二为一。我有以下想法-打开.exe文件,我想在文本编辑器中打包(服务应用程序),然后将其内容复制到某个字符串。然后我需要在所需目录中创建一个空的.exe文件并将字符串写入该文件。但我想这不是一个好主意。解决我的问题的最佳方法是什么?提前致谢。 最佳答案 为了好玩,我写了一个使用您的方法的“启动器”程序。它有效,我使用zoomin.exe作为有效载荷对其进行了测试。创建启动器可执行文件后,在Not